From: Georges Basile Stavracas Neto Date: Wed, 27 May 2020 01:29:29 +0000 (-0300) Subject: appDisplay: Create app folder where the drop happened X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~110 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b64ce217e4c06e624682f91926151dc4cccc329e;p=gnome-shell.git appDisplay: Create app folder where the drop happened Create the app folder where the icon we drop at is located. This ensures the folder icon doesn't go into the last page, hidden and solitary. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 0e14d376c..65d41fa53 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -1126,6 +1126,11 @@ class AppDisplay extends BaseAppView { return false; } + // The hovered AppIcon always passes its own id as the first + // one, and this is where we want the folder to be created + const [folderPage, folderPosition] = + this._grid.getItemPosition(this._items.get(apps[0])); + let appItems = apps.map(id => this._items.get(id).app); let folderName = _findBestFolderName(appItems); if (!folderName) @@ -1136,7 +1141,12 @@ class AppDisplay extends BaseAppView { newFolderSettings.set_strv('apps', apps); newFolderSettings.apply(); - this.selectApp(newFolderId); + this._redisplay(); + + // Move the folder to where the icon target icon was + const folderItem = this._items.get(newFolderId); + this._moveItem(folderItem, folderPage, folderPosition); + this._savePages(); return true; }